home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 041-050 / amok42 / menu / menu.def next >
Text File  |  1993-11-04  |  3KB  |  56 lines

  1. (*******************************************************************************
  2. :Program.       Menu.def
  3. :Author.        Jan Behrens
  4. :Address.       Hauptstraße 13, 2211 Holstenniendorf
  5. :Copyright.     PD, siehe Menu.dok
  6. :Language.      Modula-2
  7. :Translator.    M2Amiga
  8. :History.       V1.0 8.Aug.90, Hoffentlich nur wenige Fehler !
  9. :Support.       Interruptroutine [fbs]
  10. :Contents.      Menus, mit denen  auf einfache Weise mit Maus und Tastatur 
  11. :Contents.      eine Auswahl getroffen werden kann
  12. *******************************************************************************)
  13.  
  14. DEFINITION MODULE Menu;
  15.  
  16. FROM Intuition IMPORT IntuiTextPtr,WindowPtr,ImagePtr;
  17. FROM Exec      IMPORT MsgPortPtr;
  18. FROM SYSTEM    IMPORT ADDRESS,LONGSET;
  19.  
  20. (*Damit DrawMenu funktioniert, müssen in der NewWindow-Struktur folgende Flags
  21.   gesetzt sein :
  22.      -IDCMPFlagSet{mouseButtons,rawKey,mouseMove};
  23.      -WindowFlags{reportMouse}                                      *)
  24.  
  25. TYPE MenuType   = (selectMenu,checkMenu);          
  26.      MenuFlags  = (menuBorder,standardWidth,invertItems,borderItems,cycleItems,
  27.                    changeColorItems,customCheckMark,clearFirst,saveBack);
  28.      MenuFlagSet= SET OF MenuFlags;
  29.      MenuPtr    = POINTER TO Menu;
  30.      Menu       = RECORD
  31.                     leftEdge,topEdge:INTEGER;  (*Linke & Obere Ecke des Menüs *)
  32.                     width,height:INTEGER;      (*Breite,Höhe des Menüs        *)
  33.                     type:MenuType;             (*Type des Menus               *)
  34.                     flags:MenuFlagSet;         (*Besonderheiten des Menüs     *)
  35.                     numItems:CARDINAL;         (*Anzahl der Items             *)
  36.                     selectedItems:LONGSET;     (*Aktivierte Items; Nur bei 
  37.                                                  type=CheckMenu               *)
  38.                     checkMark:ImagePtr;        (*Alternativer Check-Haken;
  39.                                                  nur für Check-Menüs;
  40.                                                  CustomCheckMark muß in flags
  41.                                                  gesetzt werden               *)
  42.                     standWidth:CARDINAL;       (*Alle Items bekommen einen 
  43.                                                  Border oder einen anderen 
  44.                                                  Select-Zustand mit dieser 
  45.                                                  Breite, standardWidth muß in 
  46.                                                  Flags gesetzt werden !       *)
  47.                     hailText:IntuiTextPtr;     (*Überschrift des Menus        *)
  48.                     firstText:IntuiTextPtr;    (*Zeiger auf die erste 
  49.                                                  Item(IntuiText)-Struktur     *)
  50.                   END;
  51.          
  52. PROCEDURE DrawMenu(WPtr:WindowPtr;MPtr:MenuPtr):CARDINAL;
  53. (*WPtr    : Zeiger auf das Window, in dem das Menu dargestellt werden soll
  54.   MPtr    : Zeiger auf die Menu-Struktur   
  55.   CARDINAL: Nummer des angewählten Items, nur bei selectMenu sinnvoll         *)
  56. END Menu.